package com.huluspace.learnhub.security;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 跨域请求配置（CORS 配置）
 * 用于指定哪些前端域名、请求方法、请求头可以访问后端接口，
 * 以及是否允许携带Cookie等凭证。
 * 注意：
 * - 如果前后端同域部署（或通过反向代理解决跨域），可以不启用。
 * - 开发环境跨域调试时通常需要开启。
 * - 生产环境应将allowedOriginPatterns精确限制为可信域名，避免安全风险。
 */

@Configuration
public class CorsConfig implements WebMvcConfigurer {
  @Override
  public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/api/**")
        .allowedOriginPatterns("*") // 如果只允许前端访问，可写http://localhost:5173
        .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
        .allowedHeaders("*")
        .allowCredentials(true);
  }
}
